//package com.hsqn;
//
//import com.baomidou.mybatisplus.generator.FastAutoGenerator;
//import com.baomidou.mybatisplus.generator.config.OutputFile;
//import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
//import java.util.Collections;
//
///**
// * MyBatis-Plus 代码生成器
// * 功能：快速生成指定数据库表对应的 Entity（实体）、Mapper（映射接口）、Service（业务层）、Controller（控制层）及 Mapper XML 文件
// * 依赖：需导入 mybatis-plus-generator、freemarker 依赖（已在集成步骤中配置）
// */
//public class CodeGenerator {
//    public static void main(String[] args) {
//        // 1. 初始化代码生成器，指定数据库连接信息
//        FastAutoGenerator.create(
//                        "jdbc:mysql://localhost:3306/ylgl", // 数据库连接URL（localhost:3306为数据库地址端口，lms为数据库名）
//                        "root", // 数据库登录用户名
//                        "123456" // 数据库登录密码
//                )
//                // 2. 全局配置（生成文件的通用设置）
//                .globalConfig(builder -> {
//                    builder.author("lingwenjie") // 设置生成代码的作者署名（会显示在类注释中）
//                            // 生成文件的输出目录：项目根目录下的 src/main/java（System.getProperty("user.dir") 获取项目根路径）
//                            .outputDir(System.getProperty("user.dir") + "/ylgl/src/main/java")
//                             // 开启 Swagger 注解支持（生成的实体/控制器会添加 @ApiModel、@ApiParam 等注解）
//                            .commentDate("yyyy-MM-dd"); // 类注释中的日期格式（默认包含时间，此处简化为年月日）
//                })
//                // 3. 包配置（生成文件的包结构设置）
//                .packageConfig(builder -> {
//                    builder.parent("com.hsqn") // 父包名（所有生成的类都会放在该包下）
//                            .controller("controller") // 控制器层包名（完整路径：com.hsqn.controller）
//                            .service("service") // 业务层包名（完整路径：com.hsqn.service）
//                            .mapper("mapper") // Mapper接口包名（完整路径：com.hsqn.mapper）
//                            .entity("pojo") // 实体类包名（完整路径：com.hsqn.pojo，也可改为 entity 更规范）
//                            // Mapper XML 文件的输出路径：resources/mapper 目录（与 application.yml 中 mybatis-plus.mapper-locations 配置一致）
//                            .pathInfo(Collections.singletonMap(OutputFile.xml,
//                                    System.getProperty("user.dir") + "/ylgl/src/main/resources/mapper"));
//                })
//                // 4. 策略配置（生成规则定制，针对表、字段、类名等）
//                .strategyConfig(builder -> {
//                    builder.addInclude("activity_schedule,alarm_info,device_info,elderly,health_record,location_info,meal_order,medication_record,member_info,sys_permission,sys_role,sys_user") // 指定需要生成代码的数据库表名（多个表用逗号分隔，如 "emp", "dept"）
//                            // 控制器策略配置
//                            .controllerBuilder()
//                            .enableRestStyle() // 生成 REST 风格控制器（类上用 @RestController，替代 @Controller+@ResponseBody）
//                            // 业务层策略配置
//                            .serviceBuilder()
//                            .formatServiceFileName("%sService") // Service 接口命名格式（%s 代指表名，如 emp → EmpService）
//                            // 实体类策略配置
//                            .entityBuilder()
//                            .enableLombok(); // 开启 Lombok 支持（实体类会添加 @Data 注解，省去 getter/setter/toString 等方法）
//                })
//                // 5. 模板引擎配置（指定使用 Freemarker 模板生成代码，需导入 freemarker 依赖）
//                .templateEngine(new FreemarkerTemplateEngine())
//                // 6. 执行代码生成
//                .execute();
//    }
//}